package com.zijin.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zijin.dto.user.UserDTO;
import com.zijin.dto.user.UserEidtDTO;
import com.zijin.dto.user.UserLoginDTO;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zijin.dto.user.UserSignUpDto;
import com.zijin.entity.user.User;
import com.zijin.qurey.user.UserPageQureyDTO;
import com.zijin.vo.user.UserLoginVO;
import com.zijin.vo.user.UserVo;

import javax.security.auth.login.LoginException;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author JWei Xu
 * @since 2025-02-01
 */
public interface IUserService extends IService<User> {

    UserLoginVO login(UserLoginDTO userLoginDTO, HttpServletRequest request) throws LoginException;

    void saveOne(UserDTO userDTO);

    IPage<UserVo> pageQurey(UserPageQureyDTO userPageQureyDTO);

    Boolean editOne(Long id, UserEidtDTO userDTO);

    void checkUser(String userName);

    void registration(UserSignUpDto dto);

    void sendEmail(String email);

    UserVo getUserById(Long id);

    UserVo getUser();

    Boolean edit(UserEidtDTO userDTO);

    List<UserVo> getList(UserPageQureyDTO userPageQureyDTO);

    Boolean resetPassword(Long id);
}
